/*
 * @Author: quit
 * @Date: 2023-03-17 02:47:11
 * @LastEditTime: 2023-03-19 13:13:04
 * @Descripttion: implements
 * @notice:
 */

/**
 * @description: 类实现接口
 * TS能够使用它来明确的强制一个类去符合某种契约
 * 实现(implements)是面向对象中的一个重要概念.一般来讲,一个类只能继承自另一个类,有时候不同类之间可以有一些共有的特性,这时候就可以把特性提取成接口(interfaces)
 * 用implements关键字来实现.这大大提高面向对象的灵活性
 */
interface Alarm {
    warning(): void;
}
class Door implements Alarm {
    bashou: string = '铜';
    warning(): void {
        console.log('防盗门的报警功能');
    }
}
class Car implements Alarm {
    wheel: number = 4;
    warning(): void {
        console.log('车的报警功能');
    }
}
let d1: Door = new Door();
let c1: Car = new Car();
d1.warning();
c1.warning();
// class CarBWM extends Car {
//     danggan: string = '鸡腿式';
// }
// let v1: CarBWM = new CarBWM();
// v1.warning();
class CarBWM extends Car implements Alarm {
    danggan: string = '鸡腿式';
    warning() {
        console.log('BWM的报警功能');
    }
}
let v1: CarBWM = new CarBWM();
v1.warning();

export {};
